A cyclic executive is an alternative to a real-time operating system. It is a form of cooperative multitasking, in which there is only one task. The sole task is typically realized as an infinite loop in main(), e.g. in C/C++.
The basic scheme is to cycle through a repeating sequence of activities, at a set frequency. For example, let us consider the example of an embedded system designed to monitor a temperature sensor and update an LCD display. The LCD may need to be written ten times a second (i.e., every 100 ms). If the temperature sensor must be read every 50 ms for other reasons, we might construct a loop of the following appearance:
main() { // initialization code here while (1) { currTemp = tempRead(); lcdWrite(currTemp); // waste CPU cycles until 50 ms currTemp = tempRead(); // do other stuff // waste CPU cycles until 100 ms } }
The outer 100 ms cycle is called the major cycle. In this case, there is also an inner minor cycle of 50 ms.